package cn.broadsense.thrid.constant;

/**
 * 大华接口地址
 *
 * @author pengxin
 * @date 2022-08-08 15:43
 */
public interface DaHuaApiUrlConstant {

    /**
     * token
     */
    String TOKEN_KEY = "X-Subject-Token";

    /**
     * xc系列大华token
     */
    String REDIS_TOKEN_KEY = "dh:token";
    /**
     * c系列token
     */
    String REDIS_C_TOKEN_KEY = "dh:c:token";

    /**
     * 通道列表
     */
    String CHANNEL_PAGE_POST = "dos/channel/queryPage";

    /**
     * 通道详情
     */
    String CHANNEL_DETAILS_GET = "/dos/channel/%s";

    /**
     * 视频变焦
     */
    String VIDEO_CLOUD_FOCUS_POST = "/zhcs/apiserve/resource-catalog/tripartite/authority/video/cloud/focus";

    /**
     * 视频云台控制
     */
    String VIDEO_CLOUD_TURN_POST = "/zhcs/apiserve/resource-catalog/tripartite/authority/video/cloud/turn";

    /**
     * 视频播放回放
     */
    String VIDEO_PLAY_POST = "/zhcs/apiserve/resource-catalog/tripartite/authority/video/play";

    /**
     * 算法和点位的绑定关系
     */
    String ABILITY_LIST = "/zhcs/apiserve/ability/tripartite/ability/list";


    String VIDEO_PLAY = "videoService/realmonitor/uri?channelId=%s&subType=%s&scheme=HLS";

    /**
     * 视频能力规则
     */
    String ABILITY_RULE = "/zhcs/apiserve/ability/tripartite/ability/rule/config";


    /**
     * 告警订阅
     */
    String ALARM_SUBSCRIBE_PAGE = "/zhcs/apiserve/ability/tripartite/find/alarm/subscribe/page";

    /**
     * 返回第三方告警核验结果信息
     */
    String THRID_RESPONSE_INFO = "/zhcs/apiserve/ability/tripartite/search/thrid/alarm/response/info";

    /**
     * 订阅（批量）、暂停（批量）
     */
    String SUBSCRIBE_ABILITY = "/zhcs/apiserve/ability/tripartite/subscribe/ability";

    /**
     * 告警中心_保存第三方返回的核验信息
     */
    String THIRD_CHECKS = "/zhcs/apiserve/ability/tripartite/third/checks";

    /**
     * 设备组织结构
     */
    String DEVICE_TREE = "/videoService/devicesManager/deviceTree";


    /**
     * 请求跳转的uuid
     */
    String COMPOSITE_LOGIN_REDIRECT = "/zhcs/apiserve/composite/login/putRedirectParam";

    /**
     * 算法仓接口
     */
    interface Algorithm {

        /**
         * 算法能力查询接口
         */
        String ALGORITHMS = "/eventAnalysis/algorithms";

        /**
         * 算法能力状态
         */
        String ALGORITHMS_STATUS = "/eventAnalysis/algorithms/status";

        /**
         * 算法查询接口
         */
        String ALGORITHMS_EVENTS = "/eventAnalysis/algorithms/events";

        /***
         * 行业场景查询接口
         */
        String ALGORITHMS_INDUSTRYSCENES = "/eventAnalysis/algorithms/industryScenes";
        /**
         * 算法报警规则
         */
        String ALARM_RULES = "/eventAnalysis/algorithms/alarmRules";

        /**
         * 算法json 文件 /eventAnalysis/algorithms/readFile/{algorithmId}
         */
        String ALGORITHMS_READFILE = "/eventAnalysis/algorithms/readFile/";


        /**
         * 算法版本
         */
        String ALGORITHMS_VERSION = "/eventAnalysis/algorithms/version";

        /**
         * 算法告警频率查询
         */
        String ALGORITHMS_DURATION = "/eventAnalysis/algorithms/duration";

    }

    /**
     * 事件编排
     */
    interface EventAnalysis {
        /**
         * 添加任务编排接口
         */
        String PLAN_TASK = "/eventAnalysis/event/planTask";
        /**
         * put 更新任务编排接口 /eventAnalysis/event/planTask/{planTaskId}
         */
        String UPDATE_PLAN_TASK = "/eventAnalysis/event/planTask/";

        /**
         * 启停任务 /eventAnalysis/event/planTask/[planTaskId]/status
         */
        String CHANGE_PLAN_TASK_STATUS = "/eventAnalysis/event/planTask/%s/status";

        /**
         * 删除任务 /eventAnalysis/event/planTask/[planTaskId]
         */
        String DEL_PLAN_TASK = "/eventAnalysis/event/planTask/%s";

        /**
         * 分页查询任务接口
         */
        String PLAN_TASK_LIST = "/eventAnalysis/event/planTask/list";

        /**
         * 查询任务详情 /eventAnalysis/event/planTask/[planTaskId]
         */
        String PLAN_TASK_DETAILS = "/eventAnalysis/event/planTask/%s";

        /**
         * 查询任务能力占用接口
         */
        String PLAN_TASK_CAPACITYUSAGE = "/eventAnalysis/event/planTask/capacityUsage";

        /**
         * post 添加 put 修改 delete 删除 通道任务
         */
        String CHANNEL_TASK = "/eventAnalysis/event/channelTask";

        /**
         * 算法重启
         */
        String EVENT_ALGORITHM_RESTART = "/eventAnalysis/event/algorithm/restart";

        /**
         * 批量启停任务 put
         */
        String CHANGE_BATCH_PLAN_TASK_STATUS = "/eventAnalysis/event/planTask/batch/status";

        /**
         * 批量删除任务
         */
        String DELETE_BATCH_PLAN_TASK = "/eventAnalysis/event/planTask/delete";

        /**
         * 运行任务实时统计
         */
        String STATISTIC_RUNNING_TASKS = "/eventAnalysis/task/statistic/running/tasks";

        /**
         * 实时任务统计
         */
        String STATISTIC_ANALYSIS_TASKS = "/eventAnalysis/task/statistic/analysis/tasks";

        /**
         * 运行任务用户实时统计
         */
        String STATISTIC_RUNNING_USER_TASKS = "/eventAnalysis/task/statistic/running/user/tasks";

        /**
         * 查询该点位任务
         */
        String PLAN_TASK_CHANNEL = "/eventAnalysis/event/planTask/channel";

        /**
         * 全量同步编排任务状态信息
         */
        String PLAN_TASK_SYNC_STATUS = "/eventAnalysis/event/planTask/dualNetWork/status";

        /**
         * POST 已导入通道列表以及分析数据
         */
        String FUNCTION_CHANNEL_LIST = "/gdevice/function/channel/list";
        /**
         * 能力状态
         */
        String VIAS_SYSTEM_STATUS = "/VIAS/SystemStatus";
    }

    /**
     * 系统配置相关接口
     */
    interface SysConfig {
        /**
         * 支持代理配置列表查询 查询GET 新增post
         */
        String PROXY_CONFIG = "/eventAnalysis/proxyConfig";
        /**
         * 删除代理服务 /eventAnalysis/proxyConfig/{proxyId} DELETE
         * put 修改
         */
        String DEL_PROXY = "/eventAnalysis/proxyConfig/%s";

        /**
         * post 关联点位列表
         */
        String CHANNEL_LIST = "/eventAnalysis/capGatewayConfig/channel/query";

        /**
         * post 关联点位绑定
         */
        String BIND_CHANNEL = "/eventAnalysis/capGatewayConfig/channel/updateBind";

        /**
         * post 抓图网关新增
         */
        String CAP_GATEWAY_CONFIG = "/eventAnalysis/capGatewayConfig";

        /**
         * 抓图网关 /{capGatewayId}
         * delete 删除
         * put 修改
         */
        String CAP_GATEWAY_CONFIG_CHANGE = "/eventAnalysis/capGatewayConfig/%s";

        /**
         * 抓图网关列表
         */
        String CAP_GATEWAY_CONFIG_LIST = "/eventAnalysis/capGatewayConfig/query";

        /**
         * 加密公钥
         */
        String PUBLIC_KEY = "/eventAnalysis/publicKey";

    }

    /**
     * 透传db 接口
     */
    interface DbApi {
        /**
         * 透传db算力
         */
        String COMPUTING_CAPS = "/processing/behavior/algorithms/computingCaps";
        /**
         * 平台SaaS服务，用于平台展示当前智能能力集使用情况
         */
        String SUMMARY = "/processing/capacity/capacities/summary";
        /**
         * 硬件资源使用情况
         */
        String INTELLIGENT_CARD = "/processing/intelligent-card/usage";
    }

    /**
     * 视频结构化特征查询
     */
    interface VideoFeatures {

        /**
         * 获取特征检索列表，查询特征检索的数据
         */
        String VIDEOEX_FTS_SEARCH = "/videoEx/fts/search";

        /**
         * 获取符合特征查询条件的数据总条数
         */
        String VIDEOEX_FTS_TOTALS = "/videoEx/fts/totals";

        /**
         * 获取特征检索详情，对特征检索的数据结果详情进行查询{type}/{recordId}
         */
        String VIDEOEX_FTS_DETAIL = "/videoEx/fts/detail/%s/%s";

        /**
         * 以图搜图
         */
        String VIDEOEX_PERSON_FACE = "/videoEx/person/face/detect/query";
        /**
         * 新的以图搜图接口地址  调用二次
         */
        String NEW_VIDEOEX_PERSON_FACE = "/videoEx/person/face/detect/queryFeatures";

        /**
         * 检测图片中所能检测出来的结构化物体
         */
        String VIDEOEX_EXTRACT = "/videoEx/person/detect/extract";

        /**
         * 车辆以图搜图任务
         */
        String VEHICLE_IMAGE_SEARCH_TASK = "/ia/view/vehicle/imageSearch/task";

        /**
         * 车辆以图搜图进度
         */
        String VEHICLE_IMAGE_SEARCH_PROGRESS = "/ia/view/vehicle/imageSearch/task/progress";

        /**
         * 车辆以图搜图任务结果
         */
        String VEHICLE_IMAGE_SEARCH_RESULT = "/ia/view/vehicle/imageSearch/task/result";
    }

    /**
     * 人像智能
     */
    interface PeopleAi {

        /**
         * 人像库新增 post   查询get
         */
        String FACE_REPOSITORY = "/faceService/repository";
        /**
         * 人像库 put 修改 delete 删除 /{repositoryId}
         */
        String FACE_REPOSITORY_EDIT = "/faceService/repository/%s";

        /**
         * 人像库中 post 新增一个库成员
         */
        String FACE_REPOSITORY_MEMBER = "/faceService/repository/member";
        /**
         * 人像库变更库成员 PUT 修改 delete 删除 get 查询详情  /{memberId}
         */
        String FACE_REPOSITORY_MEMBER_EDIT = "/faceService/repository/member/%s";


        /**
         * 人像布控设置 put  人像布控查询GET
         */
        String FACE_SURVEILLANCE = "/faceService/surveillance";

        /**
         * 人像布控设置批量 put
         */
        String FACE_BATCH_SURVEILLANCE = "/faceService/surveillance/batch/async";

        /**
         * DELETE 人像布控删除 /{repositoryId}  {channelCode}
         */
        String DEL_FACE_SURVEILLANCE = "/faceService/surveillance/%s?channelCode=%s";

        /**
         * 人像告警列表
         */
        String FACE_ALARM = "/faceService/query/alarm?start=%s&limit=%s";
        String FACE_ALARM_2 = "/faceService/query/alarm/group";
        /**
         * 人像告警详情 /{alarmId}
         */
        String FACE_ALARM_DETAILS = "/faceService/query/alarm/%s";


        /**
         * 人像抓怕
         */
        String FACE_CAPTURE = "/faceService/query/capture";

        /**
         * 人像抓拍详情 /{recordId}
         */
        String FACE_CAPTURE_DETAILS = "/faceService/query/capture/%s?resultPictureType=0&capTime=";

        /**
         * 人像库检索
         */
        String FACE_REPO_SEARCH = " /faceService/query/repository?resultPictureType=0";

        /**
         * 人像告警统计
         */
        String FACE_STATISTICS_ALARM = "/faceService/statistics/alarm";
        /**
         * 人像告警总数查询
         */
        String FACE_ALARM_COUNT = "/faceService/query/alarm/count";

        /**
         * 人像抓拍统计
         */
        String FACE_STATISTICS_CAPTURE = "/faceService/statistics/capture";
        /**
         * 人像抓拍查询
         */
        String FACE_CAPTURE_COUNT = "/faceService/query/capture/count";

        /**
         * 人脸库统计
         */
        String FACE_STATISTICS_REPOSITORY = " /faceService/statistics/repository";

        /**
         * 人脸设备抓拍统计高级接口
         */
        String FACE_FEATURE_CAPTURE_COUNT = "/faceService/feature/captureCount";

        /**
         * 人脸设备抓拍统计列表
         */
        String FACE_RECORD_CAPTURE = "/faceService/record/captureCount";

        /**
         * 人脸告警报警按日统计
         */
        String FACE_ALARM_STATISTICS_DAY = "/faceService/statistics/day/alarm";

        /**
         * 检测图片中的人脸
         */
        String FACE_DETECT = "/faceService/detect";

        /**
         * 人脸比对
         */
        String FACE_VERIFY = "/faceTactics/technical/query/faceVerify";

    }

    /**
     * 车辆智能
     */
    interface VehicleAi {

        /**
         * post 所有的过车数据都会存入云数据库，针对历史过车进行条件查询
         */
        String VEHICLE_QUERY_LIST = "/vehicleService/rest/vehicle/queryList?page=%s&pageSize=%s";
        /**
         * get 过车记录详情/{recordId}
         */
        String VEHICLE_QUERY_DETAILS = "/vehicleService/rest/vehicle/query/%s";


        /**
         * post 针对违章车辆进行普通查询。
         */
        String VEHICLE_ILLEGAL_LIST = "/vehicleService/rest/illegal/queryList?page=%s&pageSize=%s";

        /**
         * get违章车辆详情
         */
        String VEHICLE_ILLEGAL_DETAILS = "/vehicleService/rest/illegal/query/%s";

        /**
         * 新增布控
         */
        String VEHICLE_SURVEILLANCE = "/vehicleService/rest/surveillance";

        /**
         * put 布控审核 /{recordId}
         */
        String VEHICLE_SURVEILLANCE_AUDIT = "/vehicleService/rest/surveillance/audit/%s";
        /**
         * put 撤销布控
         */
        String VEHICLE_SURVEILLANCE_REVOKE = "/vehicleService/rest/surveillance/revoke/%s";

        /**
         * get 查询布控
         */
        String VEHICLE_SURVEILLANCE_LIST = "/vehicleService/rest/surveillance";
        /**
         * get 查询布控详情 /{recordId}
         */
        String VEHICLE_SURVEILLANCE_DETAIL = "/vehicleService/rest/surveillance/%s";

        /**
         * post 告警信息查询
         * 经过的车辆和已布控的某个车牌号匹配，会产生报警记录。
         * 本协议用于查询车辆报警信息。
         */
        String VEHICLE_ALARM = "/vehicleService/rest/alarm?page=%s&pageSize=%s";
        /**
         * get 车辆告警详情 [recordId]
         */
        String VEHICLE_ALARM_DETAIL = "/vehicleService/rest/alarm/%s";

        /**
         * post 根据条件查询二次分析信息
         */
        String PAS_CAR_ANALYSE = "/vehicleService/rest/pasCarAnalyse/queryList?page=%s&pageSize=%s";

        /**
         * 车辆品牌字典获取。
         */
        String CAR_SERIES = "/vehicleService/rest/carSeries";

        /**
         * post 查询图片中的车辆
         */
        String PIC_QUERY = "/vehicleService/rest/picQuery/detect";

        /**
         * post 车辆以图搜图任务
         */
        String PIC_TASK = "/vehicleService/rest/picQuery/task";

        /**
         * get 车辆以图搜图任务进度 /{taskId}
         */
        String PIC_TASK_STATUS = "/vehicleService/rest/picQuery/task/%s/status";

        /**
         * POST 以图搜图任务结果
         */
        String PIC_TASK_RESULT = " /vehicleService/rest/picQuery/task/result/%s?page=%s&pageSize=%s";

        /**
         * post 针对过车总量按照时间统计查询。
         */
        String CAR_FLOW = "/vehicleTactics/rest/picReport/carFlow";

        /**
         * post 针对过车总量按照通道统计查询。
         */
        String CHANNEL_FLOW = "/vehicleTactics/rest/picReport/channelFlow";

        /**
         * 针对违章报警按照地点纬度统计查询。
         */
        String VIOLATION_CHANNEL = "/vehicleTactics/rest/picReport/violationChannel";
        /**
         * 针对违章报警按照时间纬度统计查询。
         */
        String VIOLATION_COUNT = "/vehicleTactics/rest/picReport/violationCount";

        /**
         * 违法统计车辆类型接口
         */
        String VIOLATION_PLATE_TYPE = "/vehicleTactics/rest/picReport/violationPlateType";

        /**
         * 违法统计违章类型接口
         */
        String VIOLATION_REC_TYPE = " /vehicleTactics/rest/picReport/violationRecType";

        /**
         * 布控报警统计 布 -地点维度
         */
        String SURVEY_ALARM_CHANNEL = "/vehicleTactics/rest/picReport/surveyAlarmChannel";
        /**
         * 布控报警统计 布 -时间维度
         */
        String SURVEY_ALARM_COUNT = "/vehicleTactics/rest/picReport/surveyAlarmCount";

        /**
         * 车辆类别统计
         */
        String CATEGORY_COUNT = "/vehicleTactics/rest/picReport/categoryCount";

        /**
         * 针对过车总量按照车系统计查询
         */
        String CAR_BRAND_COUNT = "/vehicleTactics/rest/picReport/carBrandCount";

        /**
         * post 首次入城 _查询接口
         */
        String FIRST_APPEAR_LIST = "/vehicleTactics/rest/firstAppear/getFirstAppearList?page=%s&pageSize=%s";

        /**
         * 在所选时间范围内，且上次出现的时间在回溯天数之前（或从来没出现过）的车辆（查过车表）的总数。
         */
        String FIRST_APPEAR_COUNT = "/vehicleTactics/rest/firstAppear/getFirstAppearList/count";

        /**
         * 时空碰撞 _查询汇总统计接口
         */
        String TRACK_COLLISION_LIST = "/vehicleTactics/rest/trackCollision/getTrackCollisionList?page=%s&pageSize=%s";

        /**
         * 时空碰撞-查询汇总统计总数接口
         */
        String TRACK_COLLISION_COUNT = "/vehicleTactics/rest/trackCollision/getTrackCollisionList/count";

        /**
         * 时空碰撞 - 车牌记录详情
         */
        String TRACK_COLLISION_DETAIL = "/vehicleTactics/rest/trackCollision/getTrackCollisionDetail?page=%s&pageSize=%s";

        /**
         * 时空碰撞 - 车牌记录总数
         */
        String TRACK_COLLISION_DETAIL_COUNT = "/vehicleTactics/rest/trackCollision/getTrackCollisionDetail/count";

        /**
         * 根据查询条件查询同行车信息。
         */
        String FOLLOW_CAR = "/vehicleTactics/rest/followCar?page=%s&pageSize=%s";

        /**
         * 车辆轨迹
         */
        String CAR_TRACES = "/vehicleTactics/rest/followCar/traces";
        /**
         * 轨迹详情
         */
        String CAR_TRACES_DETAIL = "/vehicleTactics/rest/followCar/mainAndFollowTraces";

        /**
         * 频繁出现
         */
        String HIGH_FREQUENCY_CAR = "/vehicleTactics/rest/highFrequencyCar/getList?page=%s&pageSize=%s";
        /**
         * 频繁出现 总数
         */
        String HIGH_FREQUENCY_CAR_COUNT = "/vehicleTactics/rest/highFrequencyCar/getCount";

        /**
         * 落脚点分析
         */
        String LOCATION_ANALYSE = "/vehicleTactics/rest/locationAnalyse?page=%s&pageSize=%s";
        /**
         * 落脚点分析总数
         */
        String LOCATION_ANALYSE_COUNT = "/vehicleTactics/rest/locationAnalyse/count";

        /**
         * 落脚点详情接口
         */
        String LOCATION_ANALYSE_DETAIL = "/vehicleTactics/rest/locationAnalyse/detail?page=%s&pageSize=%s";
        /**
         * 落脚点详情总数
         */
        String LOCATION_ANALYSE_DETAIL_COUNT = "/vehicleTactics/rest/locationAnalyse/detail/count";

        /**
         * 隐匿车辆查询接口
         */
        String HIDE_CAR = "/vehicleTactics/rest/hideCar?page=%s&pageSize=%s";

        /**
         * 隐匿车辆查询总数
         */
        String HIDE_CAR_COUNT = "/vehicleTactics/rest/hideCar/count";

        /**
         * 昼伏夜出 查询接口
         * 在特定时间满足夜间出现次数和白天出现次数的车辆。
         */
        String DHNO = "/vehicleTactics/rest/dhno/getList?page=%s&pageSize=%s";
        /**
         * 昼伏夜出总数 查询接口
         */
        String DHNO_COUNT = " /vehicleTactics/rest/dhno/getCount";

        /**
         * 套牌车查询
         */
        String COPY_CAR = "/vehicleTactics/rest/copyCar?page=%s&pageSize=%s";

        /**
         * 套牌车总数
         */
        String COPY_CAR_COUNT = "/vehicleTactics/rest/copyCar/count";

        /**
         * 根据ID，查询研判出的套牌车数据。
         */
        String COPY_CAR_DETAIL = "//vehicleTactics/rest/copyCar/byIds";

        /**
         * 假牌车查询
         */
        String FAKE_CAR = "/vehicleTactics/rest/fakeCar?page=%s&pageSize=%s";
        /**
         * 假牌车总数
         */
        String FAKE_CAR_COUNT = "/vehicleTactics/rest/fakeCar/count";

        /**
         * 根据id查询假牌车
         */
        String FAKE_CAR_DETAIL = "/vehicleTactics/rest/fakeCar/byIds";
    }


    /**
     * 视频应用
     */
    interface VideoApplication {
        /**
         * 按分级分页获取用户所属的组织信息 GET
         */
        String DEVICE_LAYER_ORG = " videoService/devicesManager/deviceLayerOrg?page=%s&pageSize=%s&layer=%s&orgType=%s";

        /**
         * 按分级批量组织获取设备信息 POST
         */
        String ORG_DEVICES_INFO = "videoService/devicesManager/batchOrgs/devicesInfo";
        /**
         * 设备状态
         */
        String ORG_DEVICES_STATUS = "/videoService/devicesManager/batchOrgs/devicesStatus";
    }
}
